/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package laboratorio5;

/**
 *
 * @author ROGER DIAZ
 * 
 * Varias de las formas en las que se utilizo el arraylist fueron por ideas tomadas del siguiente link:
 * http://jarroba.com/arraylist-en-java-ejemplos/
 */

//tengo que usar la libreria de arraylist
//lo bueno de esto es que las funcionalidades de mis metodos pueden ser generadas con los metodos de esta libreria
import java.util.*;

public class ListaArrayList implements iLista {
    //de atributo tengo el array con el que trabajo
ArrayList<String> Array;

    public ListaArrayList(){
        //aqui inicializo el arreglo
    Array = new ArrayList<>();
    }
  
    //con .size() puedo saber el largo del array
    public int largo() {
       int lenght= Array.size();
        return lenght;
    }

  
    //con .add ingreso otro string al arreglo
    public void pusht(String nuevovalor) {
        Array.add(nuevovalor);
    }

   
    //si saco el largo del array con .lastIndexOf(), puedo ponerle ese numero de posicion a .get()
    //luego de eso solo lo borro de la lista
    //con eso puedo sacar el ultimo valor de la lista, esto es analogo a pop
    public String popt() {
        //devuelve la posicion del ultimo item que se mete al array
        int ultimo=Array.lastIndexOf(this);
        //al tener la posicion tomo ese valor
        String item=Array.get(ultimo);
        //borro el valor del array ya que lo tome
        Array.remove(ultimo) ;
        return item;
    }

    //con .contains puedo ver si existe el valor que deseo ver en la lista
    public boolean contiene(String value) {
        return Array.contains(value);
        
    }

  
    //si le meto el valor que quiero quitar a .remove lo quita de la lista
    public String removerAlguno(String prueba) {
        Array.remove(prueba);
       return "";
    }

   
    //.clear vacia el Array de tipo Arraylist
    public void limpiar() {
        Array.clear();
    }


    public String imprimir() {
        int i=0;
        //con un ciclo voy imprimiendo los valores del array y va a parar cuando se hayan impreso todos
        //ya que la cantidad de veces impresa sera igual a la cantidad de valores dentro del array
while(Array.size()!=0){
	String elemento = Array.get(i);
	System.out.print(elemento+" / ");
        i++;
}
return "";
    }

  
    public String getUltimo() {
        //tomo el largo del array
        int lar=Array.size();
        //lo uso como posicion para que me lleve al ultimo item
        //entonces lo tomo en una variable
        String item=Array.get(lar);
        //y retorno esa variable
        return item;
   }
    
}
